home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_pcdp / ada / workers.ada < prev   
Text File  |  1996-01-30  |  682b  |  26 lines

  1. separate(MatrixL)
  2. task body Workers is
  3.  
  4.   Next, Row_Tuple, Col_Tuple: Tuples;
  5.   Element, I, J, Sum: Integer;
  6.  
  7. begin
  8.   loop
  9.     Next := In_Tuple(Char('N'), Formal_Int);
  10.     Element := Int(Next, 2);
  11.     Out_Tuple(Char('N'), Int(Element+1));
  12.     exit when Element > 3 * 3;
  13.     I := (Element - 1)  /  3 + 1;
  14.     J := (Element - 1) mod 3 + 1;
  15.     Row_Tuple := Read_Tuple(Char('A'), Int(I), Formal_Vec);
  16.     Col_Tuple := Read_Tuple(Char('B'), Int(J), Formal_Vec);
  17.     
  18.     Sum := 0;
  19.     for N in 1..3 loop
  20.       Sum := Sum + Vec(Row_Tuple,3)(N) * Vec(Col_Tuple,3)(N);
  21.     end loop;
  22.  
  23.     Out_Tuple(Char('C'), Int(I), Int(J), Int(Sum));
  24.   end loop;
  25. end Workers;   
  26.